From d0bc0b3f4ad9d356ead00c5360e80430f99d5f2f Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Fri, 3 Dec 2004 08:12:50 +0000 Subject: [PATCH] (bug 144) Dan Keshet's category backlinks special-casing patch, with sql escaping fix. --- RELEASE-NOTES | 1 + includes/SpecialRecentchangeslinked.php | 24 +++++++++++++++++------- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 5201e4f0ed..ab17213a63 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -33,6 +33,7 @@ Major changes from 1.3.x: * Installer die if it can not write LocalSettings.php (bug #733) * Various special pages no more show the rss/atom feed links (bug #705) * Support for external authentication plug-ins +* (bug 114) use category backlinks in Special:Recentchangeslinked * ... and more! === Caveats === diff --git a/includes/SpecialRecentchangeslinked.php b/includes/SpecialRecentchangeslinked.php index 6a86012d8c..90299237c1 100644 --- a/includes/SpecialRecentchangeslinked.php +++ b/includes/SpecialRecentchangeslinked.php @@ -65,13 +65,23 @@ function wfSpecialRecentchangeslinked( $par = NULL ) { $cmq = 'AND cur_minor_edit=0'; } else { $cmq = ''; } - extract( $dbr->tableNames( 'cur', 'links' ) ); - - $sql = "SELECT cur_id,cur_namespace,cur_title,cur_user,cur_comment," . - "cur_user_text,cur_timestamp,cur_minor_edit,cur_is_new FROM $links, $cur " . - "WHERE cur_timestamp > '{$cutoff}' {$cmq} AND l_to=cur_id AND l_from=$id " . - "GROUP BY cur_id,cur_namespace,cur_title,cur_user,cur_comment,cur_user_text," . - "cur_timestamp,cur_minor_edit,cur_is_new,inverse_timestamp ORDER BY inverse_timestamp LIMIT {$limit}"; + // If target is a Category, use categorylinks and invert from and to + if ( $nt->getNamespace() == NS_CATEGORY ) { + extract( $dbr->tableNames( 'cur', 'categorylinks' ) ); + $catkey = $dbr->addQuotes( $nt->getDBKey() ); + $sql = "SELECT cur_id,cur_namespace,cur_title,cur_user,cur_comment," . + "cur_user_text,cur_timestamp,cur_minor_edit,cur_is_new FROM $categorylinks, $cur " . + "WHERE cur_timestamp > '{$cutoff}' {$cmq} AND cl_from=cur_id AND cl_to=$catkey " . + "GROUP BY cur_id,cur_namespace,cur_title,cur_user,cur_comment,cur_user_text," . + "cur_timestamp,cur_minor_edit,cur_is_new,inverse_timestamp ORDER BY inverse_timestamp LIMIT {$limit}"; + } else { + extract( $dbr->tableNames( 'cur', 'links' ) ); + $sql = "SELECT cur_id,cur_namespace,cur_title,cur_user,cur_comment," . + "cur_user_text,cur_timestamp,cur_minor_edit,cur_is_new FROM $links, $cur " . + "WHERE cur_timestamp > '{$cutoff}' {$cmq} AND l_to=cur_id AND l_from=$id " . + "GROUP BY cur_id,cur_namespace,cur_title,cur_user,cur_comment,cur_user_text," . + "cur_timestamp,cur_minor_edit,cur_is_new,inverse_timestamp ORDER BY inverse_timestamp LIMIT {$limit}"; + } $res = $dbr->query( $sql, $fname ); $wgOut->addHTML("< ".$sk->makeKnownLinkObj($nt, "", "redirect=no" )."
\n"); -- 2.20.1